package com.yc.starter.login;

import java.util.List;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import javax.annotation.PostConstruct;

@Data
@ConfigurationProperties(prefix = "login")
public class LoginProperties {
    private Boolean enable;
    // 用户实体类
    private String userClass;
    private Class userClassObject;
    // 用户表名
    private String userTable;
    // 用户字段
    private String usernameColumn;
    // 密码字段
    private String passwordColumn;
    // 邮箱字段
    private String emailColumn;
    // 加密方式
    private String encryption;
    // 登录后会话保存用户对象, 会话中的键命
    private String sessionKey;
    // 登录拦截资源列表
    List<String> loginScope;

    @PostConstruct
    public void init(){
        // 将userClass转换为Class对象
        if(this.userClass == null) return;
        try {
            userClassObject = Class.forName(userClass);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException("userClass转换为Class对象失败",e);
        }
    }
}
